package com.winhxd.b2c.product.service;

import com.winhxd.b2c.common.domain.PagedList;
import com.winhxd.b2c.common.domain.product.condition.ProductAttributeAndOptionCondition;
import com.winhxd.b2c.common.domain.product.condition.ProductAttributeCondition;
import com.winhxd.b2c.common.domain.product.model.ProductAttribute;
import com.winhxd.b2c.common.domain.product.vo.ProductAttributeAndOptionVO;

import java.util.List;

/**
 * @author cuipengbo
 * @create 2019-01-07 11:47
 * @desc 商品属性管理
 **/
public interface AttributeManagementService {

    /**
     * 查询商品属性列表
     * @param productAttributeCondition
     * @return PagedList<ProductAttribute>
     */
    PagedList<ProductAttribute> findProductAttributeList(ProductAttributeCondition productAttributeCondition);

    /**
     * 根据属性id修改商品属性
     * @param productAttributeCondition
     * @return Integer
     */
    Integer modifyProductAttributeById(ProductAttributeCondition productAttributeCondition);

    /**
     * 根据属性id查询属性信息
     * @param id
     * @return ProductAttributeAndOptionVO
     */
    ProductAttributeAndOptionVO getProductAttributeById(Long id);

    /**
     * 保存属性信息
     * @param condition
     * @return Integer
     */
    Integer saveOrUpdateProductAttribute(ProductAttributeAndOptionCondition condition);

    /**
     *根据条件查询商品属性信息
     * @param productAttribute
     * @return List<ProductAttribute>
     */
    List<ProductAttribute> findProductAttributeByModel(ProductAttributeCondition productAttribute);
}
